/**
 * 
 */
package com.gragra.sampling.sequentialStructure.tests;
import static org.junit.Assert.*;
import org.junit.Test;
import com.gragra.sampling.sequentialStructure.CaseLevel;
import com.gragra.sampling.sequentialStructure.ExtensionLevels;
import com.gragra.sampling.sequentialStructure.WordType;
/**
 * @author Christoph Teichmann
 * created Mar 26, 2013 7:59:47 PM
 * @version 0.1
 */
public class TestExtensionLevels
{
	/**
	 * Test method for {@link com.gragra.sampling.sequentialStructure.ExtensionLevels#getNumber()}.
	 */
	@Test
	public final void testGetNumber()
	{
		assertEquals(ExtensionLevels.CaseTypeLevel.getNumber(),0);
		assertEquals(ExtensionLevels.ContextTagLevel.getNumber(),2);
		assertEquals(ExtensionLevels.WordTypeLevel.getNumber(),1);
	}
	/**
	 * Test method for {@link com.gragra.sampling.sequentialStructure.ExtensionLevels#getValueClass(java.lang.String)}.
	 */
	@Test
	public final void testGetValueClass()
	{
		assertEquals(ExtensionLevels.CaseTypeLevel.getValueClass("UpperCase"),CaseLevel.UpperCase);
		assertEquals(ExtensionLevels.WordTypeLevel.getValueClass("Noun"),WordType.Noun);
		assertEquals(ExtensionLevels.ContextTagLevel.getValueClass(""),null);
	}
	@Test
	public final void testIsFinite()
	{
		assertFalse(ExtensionLevels.ContextTagLevel.isFinite());
		assertTrue(ExtensionLevels.WordTypeLevel.isFinite());
		assertTrue(ExtensionLevels.CaseTypeLevel.isFinite());
	}
	@Test
	public final void testGetPossibleValues()
	{
		assertArrayEquals(ExtensionLevels.ContextTagLevel.getPossibleValues(),null);
		assertArrayEquals(ExtensionLevels.WordTypeLevel.getPossibleValues(),WordType.values());
		assertArrayEquals(ExtensionLevels.CaseTypeLevel.getPossibleValues(),CaseLevel.values());
	}
}